package com.knowledge.plus.泛型.demo;

import lombok.Data;

/**
 * 定义一个泛型类 PairSwap，包含两个泛型类型的成员变量 first和 second，并提供一个构造方法和一个交换两个成员变量值的方法
 *
 * @author TPF
 * @since 2024/9/5
 */
@Data
class PairSwap<T, E> {

    private T first;
    private E second;

    public PairSwap(T first, E second) {
        this.first = first;
        this.second = second;
    }

    private void swap() {
        T temp = first;
        first = (T) second;
        second = (E) temp;
    }

    private void print() {
        System.out.println(this.first + ", " + this.second);
    }

    public static void main(String[] args) {
        PairSwap<String, Integer> pair = new PairSwap<>("卧槽", 666);
        pair.print();
        pair.swap();
        pair.print();
    }

}
